home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs03.d81
/
coproc.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
7KB
|
168 lines
5 POKE56,160:CLR:GOTO2007
7 Q$=CHR$(34):E=56576:V=53248
9 PRINT"[147][142]PRESS D FOR DOCUMENTATION."
10 PRINT"PRESS C FOR CALCULATION."
12 GETA$:IFA$="C"THENPRINT"[147]":GOTO17
13 IFA$="D"THENGOSUB1000:GOTO9
14 IFA$="R"THENGOSUB200:GOTO9
15 GOTO12
16 PRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8
17 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
20 PRINT"(ENTER 0 TO EXIT.)"
22 PRINT" 8[145]":INPUTD:IFD=.THENEND
25 IFD>30ORD<4ORD=15THENPRINT"ILLEGAL DEVICE NUMBER":GOTO17
27 POKE183,6:POKE184,8:POKE185,8:POKE186,D:POKE187,52:POKE188,3:POKE820,38
28 POKE824,44:POKE825,85
30 POKE821,83:POKE822,81:POKE823,82:SYS65472:IFPEEK(783)AND1THEN16
31 CLOSE8:OPEN15,D,15:GOSUB900:IFA<20THEN40
32 IFA=62ORA=64THEN400
33 CLOSE15:GOTO17
40 FORI=.TO67:READY:POKE828+I,Y:NEXT
45 POKE183,120:POKE187,255:POKE188,198
50 PRINT#15,"&SQR":POKEE,7:PRINT"[147]"
65 F=.:PRINT"ENTER INTEGER FROM 1 TO 99 FOR COMPUTER."
66 PRINT"(PRESS RETURN FOR NO NUMBER.)"
68 PRINT"(ENTER R TO RESET DISK DRIVE.)"
70 N$="":PRINT:INPUTN$:IFN$="R"THENGOSUB200:GOTO45
71 N=VAL(N$):IFN>99THEN70
72 IFN<1THENF=1:GOTO77
75 POKE140,N
77 PRINT"ENTER INTEGER FROM 1 TO 99 FOR DOS."
78 PRINT"(PRESS RETURN FOR NO NUMBER.)"
80 N=.:PRINT:INPUTN:IFN>99THEN80
82 IFN<1THENIFFTHEN100
83 PRINT"[147]CALCULATING..."
84 IFN=>1THENPOKE888,N:SYS49675
85 IFN<1THENSYS49693:GOTO65
90 IFFTHENSYS49586:GOTO65
95 SYS49152:GOTO65
100 GOSUB200:CLOSE15:END
200 PRINT"[147]JUST A SECOND PLEASE..."
210 PRINT#15,"U:"
220 FORI=1TO3000:NEXT
230 OPEN8,D,8,"&SQR":CLOSE8:RETURN
400 PRINT"[147]THERE IS NO USR FILE NAMED ";Q$;"&SQR";Q$
410 PRINT"ON DISK. PRESS C TO CREATE SUCH A FILE."
420 PRINT"OR PRESS X TO EXIT."
430 GETA$:IFA$="C"THEN460
440 IFA$="X"THENEND
450 GOTO430
460 OPEN8,D,8,"0:&SQR,U,W"
470 FORI=49701TO50125:PRINT#8,CHR$(PEEK(I));:NEXT
480 CLOSE8:PRINT"[147]":GOTO40
500 DATA17,17,83,81,82,32,40,1,1,41,32
510 DATA91,70,82,79,77,32,67,79,77,80
520 DATA85,84,69,82,93,32,61,13,13,0
530 DATA17,17,83,81,82,32,40,1,1,41,32
540 DATA91,70,82,79,77,32,68,79,83,93
550 DATA32,61,13,13,0,85,52,58,1,0
560 DATA77,45,82,0,3,120
900 INPUT#15,A,B$,C,Y
910 IFA<20ORA=62ORA=64THENRETURN
920 PRINT:PRINTA:PRINT:PRINTB$:PRINT:PRINTC,Y
930 RETURN
1000 Q$=CHR$(34):PRINT"[147]PRESS S TO PRINT TO SCREEN."
1010 PRINT"PRESS P TO PRINT TO PRINTER."
1020 GETB$:IFB$="P"THENOPEN4,4,7:CMD4:GOTO1050
1030 IFB$="S"THEN1050
1040 GOTO1020
1050 POKEV+24,22:PRINT"[147]";
1060 PRINT"[212]HIS FILE DEMONSTRATES THE USE OF THE"
1070 PRINT"6502 [205][208][213] IN THE 1541 DRIVE AS A MATH"
1080 PRINT"COPROCESSOR. [193]N [205][204] ROUTINE IN THE"
1090 PRINT"COMPUTER CALCULATES THE SQUARE ROOT OF"
1100 PRINT"AN INTEGER (FROM 1 TO 99) TO 119"
1110 PRINT"SIGNIFICANT FIGURES. [193] SIMILAR ROUTINE"
1120 PRINT"IS [211][193][214][197]D TO DISK IN A FILE NAMED"
1130 PRINTQ$;"&[211][209][210]";Q$;". [212]HE [196][207][211] AMPERSAND COMMAND"
1140 PRINT"IS THEN CALLED TO LOAD THE FILE INTO A"
1150 PRINT"SPECIFIED [196][207][211] BUFFER AND EXECUTE THE"
1160 PRINT"6502 ROUTINE AT THE FIRST BYTE. [201]N"
1165 IFB$="P"THEN1190
1170 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]."
1180 GETA$:IFA$<>CHR$(13)THEN1180
1190 PRINT"[147]THIS APPLICATION, WE ARE NOT YET READY"
1200 PRINT"FOR THE ROUTINE, SO THE FIRST BYTE IS A"
1210 PRINT"DUMMY ([210][212][211]). [215]HEN WE WANT THE [196][207][211] TO"
1220 PRINT"CALCULATE, WE SEND A ";Q$;"[213]4:;[195][200][210]$([206])";Q$;" OVER"
1230 PRINT"THE COMMAND CHANNEL (15), WHERE [206] IS"
1240 PRINT"THE ARGUMENT OF [211][209][210]. [212]HE [213]4 DOES A [196][207][211]"
1250 PRINT"[202][211][210] TO $0503 AND PULLS THE ARGUMENT"
1260 PRINT"FROM THE COMMAND BUFFER ($0203). [212]HE"
1270 PRINT"ROUTINE RETURNS 120 CHARACTERS IN"
1280 PRINT"($0300 TO $0377). [212]HEY CAN BE FETCHED"
1290 PRINT"WITH A MEMORY READ ([205]-[210]). [201]N THIS"
1295 IFB$="P"THEN1320
1300 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]."
1310 GETA$:IFA$<>CHR$(13)THEN1310
1320 PRINT"[147]PROGRAM, THIS IS DONE IN [205][204]. [194]UT AS"
1330 PRINT"LONG AS THE ";Q$;"&[211][209][210]";Q$;" IS ON DISK, YOU CAN"
1340 PRINT"USE IT FOR [211][209][210]([206]) BY RUNNING THE"
1350 PRINT"FOLLOWING [194][193][211][201][195] PROGRAM:"
1360 PRINT"10 [207][208][197][206]15,8,15,";Q$;"&[211][209][210]";Q$
1370 PRINT"20 [201][206][208][213][212][206]:[208][210][201][206][212]#15,";Q$;"[213]4:";Q$;";[195][200][210]$([206])"
1380 PRINT"30 [197]=56576:[208][207][203][197][197],7"
1390 PRINT"40 [201][198][208][197][197][203]([197])[193][206][196]128[212][200][197][206]40"
1400 PRINT"50 [208][210][201][206][212]#15,";Q$;"[205]-[210]";Q$;";[195][200][210]$(0);[195][200][210]$(3);[195][200][210]$(1";
1410 PRINT"20);"
1420 PRINT"60 [198][207][210][201]=1[212][207]120:[199][197][212]#15,[193]$:[208][210][201][206][212][193]$;:[206][197][216][212]"
1425 IFB$="P"THEN1450
1430 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]."
1440 GETA$:IFA$<>CHR$(13)THEN1440
1450 PRINT"[147]70 [208][210][201][206][212]#15,";Q$;"[213]:";Q$"
1455 [153]"80 ASC(null)(null)RIGHT$=1(null)(null)3000:(null)VAL(null)(null):LEN(null)(null)(null)VAL15"
1460 [153]"(null)PON (null)(null)(null)NING ";Q$;"LEN(null)(null)(null)(null)LEN.PEEKRIGHT$(null)";Q$;", IF YOU"
1470 [153]"SELECT LENATN(null)LEN(null)(null)ATN(null)RIGHT$(null)(null), THE DISK WILL BE"
1480 [153]"SCANNED FOR A (null)(null)(null) FILE NAMED ";Q$;"&(null)(null)(null)";Q$;"."
1490 [153]"RIGHT$F IT IS NOT FOUND, YOU ARE GIVEN A"
1500 [153]"CHANCE TO CREATE ONE. (null)HEN YOU ARE"
1510 [153]"PROMPTED FOR NUMBERS TO BE PROCESSED BY"
1520 [153]"THE COMPUTER AND BY STR$(null)(null). (null)OU MAY PRESS"
1530 [153]"(null)VAL(null)(null)(null)(null) FOR (null)(null) (null)(null)(null)PEEKVAL(null). RIGHT$F YOU DO SO FOR"
1545 [139]B$[178]"P"[167]1570
1550 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
1560 [161]A$:[139]A$[179][177][199](13)[167]1560
1570 [153]"LOADBOTH COMPUTER AND STR$(null)(null), THE PROGRAM ENDS."
1575 [153]"(null)HE STR$(null)(null) ARGUMENT IS SENT TO THE DRIVE"
1580 [153]"AND THE COMPUTER NUMBER IS PROCESSED BY"
1590 [153]"THE COMPUTER. (null)HEN THE COMPUTER PRINTS"
1600 [153]"THE RESULT TO THE SCREEN, IT THEN WAITS"
1610 [153]"FOR THE SIGNAL FROM STR$(null)(null) (BIT 7 OF $STR$STR$00"
1620 [153]"CLEAR) TO READ THE STR$(null)(null) RESULT FROM THE"
1630 [153]"DRIVE AND PRINT IT TO THE SCREEN."
1632 [153]"ATNLL FIVE STR$(null)(null) BUFFERS ARE USED, AS WELL"
1634 [153]"AS SEVERAL REGISTERS IN ZERO PAGE"
1635 [153]"MEMORY. ATNS A RESULT, IT IS NECESSARY TO"
1636 [139]B$[178]"P"[167]1639
1637 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
1638 [161]A$:[139]A$[179][177][199](13)[167]1638
1639 [153]"LOADRESET THE DRIVE BEFORE RESUMING NORMAL"
1640 [153]"DRIVE OPERATION. (null)HIS IS DONE BY THE"
1642 [153]"PROGRAM ON PROPER EXIT. PEEKUT IF YOU"
1645 [153]"NOTICE ODD RESULTS, YOU MAY SELECT (null) FOR"
1646 [153]"RESET AT THE COMPUTER NUMBER PROMPT."
1647 [153]"(null)OW THE PURPOSE OF THIS FILE IS TO"
1650 [153]"DEMONSTRATE THE TECHNIQUE OF USING THE"
1655 [153]"STR$(null)(null) (null)(null)(null) AS A COPROCESSOR. (null)HE VALUE OF"
1660 [153]"CALCULATING (null)(null)(null) ((null))CLOSETO 119 SIGNIFICANT"
1662 [153]"FIGURES IS MOOT. PEEKUT THE 1541 CAN BE"
1665 [139]B$[178]"P"[167]1720
1670 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
1680 [161]A$:[139]A$[179][177][199](13)[167]1680
1720 [153]"LOADGIVEN ANY ONE OF 27 DIFFERENT DEVICE"
1725 [153]"NUMBERS (4 TO 30). (null)O ONE LEN-64 AND 27"
1730 [153]"1541'S CAN BE ALL WORKING ON DIFFERENT"
1740 [153]"PARTS OF A PROBLEM AT THE SAME TIME."
1750 [153]:[153]"(null)ATN(null)(null) ATNPEEK(null)(null)(null) (null)(null)(null)(null)RIGHT$-(null)ATN(null)(null)RIGHT$(null)CHR$!"
1755 [139]B$[178]"P"[167][152]4:[160]4:[142]
1760 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null) ASC(null)(null) (null)ATNRIGHT$(null) (null)VAL(null)(null)."
1770 [153]" ((null)(null) (null)(null)VAL(null)(null) (null) (null)(null) VAL(null)RIGHT$(null).)"
1780 [161]A$:[139]A$[178][199](13)[167][142]
1790 [139]A$[178]"X"[176]A$[178]"(null)"[167][153]"LOADRETURN";:[128]
1800 [137]1780
2007 [153]"LOADONE MOMENT PLEASE..."
2010 P[178][194](45)[170]256[172][194](46)[171]1
2015 P[178]P[171]974
2020 [129]I[178].[164]974:[151]49152[170]I,[194](P[170]I):[130]
2025 [151]2064,48:[137]7